#!/usr/bin/python3
# -*- coding: utf-8 -*-

import allure
from playwright.sync_api import Page

from models.base_page import BasePage


class SecurityPoliciePage(BasePage):
    def __init__(self, page: Page):
        super().__init__(page)
        self.route = "security_policies"

    def check_security_policie_page_user_guide_element_to_be_visible(self):
        """检查使用指南元素是否可见"""
        with allure.step("检查SecurityPoliciePage:使用指南元素是否可见"):
            self.expect.to_be_visible(self.page.locator(".intro"))  # 使用指南栏目
            self.expect.to_be_visible(self.page.get_by_text("使用指南"))
            self.expect.to_be_visible(self.page.get_by_text("收起"))
            self.expect.to_be_visible(self.page.locator(".svg-icon > use"))
            self.expect.to_contain_text(self.page.locator("#console"),
                                        "基础网络安全策略定义了云平台 环境基础网络相关的安全设置，"
                                        "方便您控制基础网络的外部可访问性。默认情况下该策略处于关闭状态, "
                                        "若您想要一键禁止其他用户访问自己的基础网络资源时，即可点击 <开启> 启用该策略。")

    def check_security_policie_page_table_element_to_be_visible(self):
        """检查工具栏及table是否可见"""
        with allure.step("检查SecurityPoliciePage:工具栏及table是否可见"):
            self.expect.to_be_visible(self.page.get_by_role("cell", name="基础网络隔离策略"))
            self.expect.to_be_visible(self.page.get_by_role("cell", name="[启用]该策略时，名下基础网络内资源与其他用户不互通; "
                                                                         "[禁用]该策略时，名下基础网络内资源与其他用户只受安全组的限制"))
